
#include <stdio.h>

#define maxn 1000+10

int n,target[maxn];//n用来存储火车的数量，target用来存储火车出站顺序

typedef struct{//定义一个栈的数据类型
    int top;
    int data[maxn];
}stack;

int empty(stack s)
{
    if(s.top==0)
    return 1;
    else
    return 0;
}
int top(stack s)
{
    return s.data[s.top-1];
}
void pop(stack* s)
{
    s->top--;
}
void init(stack* s)
{
    s->top = 0;
}
void push(stack* s,int m)
{
    s->data[s->top++] = m;
}

int main()
{
    int n,m,k=0,a[100]={0},t=0;
    scanf("%d",&n);
    scanf("%d",&m);
    while(k<m)
    {
        stack s;
        init(&s);
        int i,ok=1;
        for(i=0;i<n;i++) scanf("%d",&target[i]);
        int A = 1,B = 0;
        while(B < n)
        {
            if(A == target[B])
                {
                    A++;B++;
                }
            else if(!empty(s) && top(s) == target[B])
                {
                    pop(&s);B++;
                }
            else if(A <= n)
                 push(&s,A++);
            else
                {ok = 0;break; }
        }
          a[t]=ok;
          k++;
          t++;
    }
    for(int i=0;i<m;i++)
    {
    if(a[i]==0) printf("NO\n");
    else if(a[i]==1) printf("YES\n");
    }
    return 0;
}
